﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////


#pragma once

#include "UniIdentity.h"
#include "GcmpModelInterface.h"

namespace gcmp
{
    /// \brief Gcmp内建Category的UniIdentity
    /// 
    /// 通过这些UniIdentity可以从ICategoryLibrary中取出相应的Category
    namespace BuiltInCategoryUniIdentities
    {
        /// \brief 生成Category的UniIdentity
        ///
        /// 生成Category的UniIdentity必须使用此方法，不然平台内部无法对Category的UniIdentity进行合法性判断
        /// \param guid Category的guid
        /// \param description Category的描述
        /// \return Category的UniIdentity
        GCMP_MODEL_INTERFACE_EXPORT const UniIdentity CreateCategoryUniIdentity(const Guid& guid, const std::wstring& description);

        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_MODEL_LINE;  ///< 模型线，包括直线、圆弧、椭圆、样条曲线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_RECTANGLEBOARD;  ///< 矩形
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_SKETCH_LINE; ///< 草图线，在草图中绘制的直线、圆弧等曲线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_SKETCH_AXIS_LINE; ///< 草图中的轴线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_SKETCH_LOCATION_LINE; ///< 草图中的定位线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_SKETCH_ROOF_BOUNDARY_CURVE;///< 草图中屋顶边界线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_FAM_CONSTRAINT; ///< 族中定义的约束：尺寸标注和几何约束的统一设置为约束
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_DIMENSION_TEXT; ///< 尺寸标注文字
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_SKETCH; ///< 草图
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_SKETCH_PLANE; ///< 草图平面
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_FORM; ///< 实体
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_DRAWING_LINE; ///< 二维线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_WORK_PLANE; ///< 工作平面
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_WORK_PLANE_GRID; ///< 
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_AUXILIARY_ELEMENT; ///< 辅助对象
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_MODEL_VIEW; ///< 视图
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_ELEMENT_GREP_HOLDER_MANAGER; ///< ElementGrepHolder管理器
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_ELEMENT_GREP_HOLDER_LOOKUP_TABLE; ///< ElementGrepHolder查询表
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_ELEMENT_GREP_HOLDER; ///< ElementGrepHolder
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_INSTANCE_GREP_HOLDER_LOOKUP_TABLE; ///< InstanceGRepHolder查询表
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_INSTANCE_GREP_HOLDER; ///< InstanceGRepHolder
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_CADBLOCK_GREP_HOLDER; ///< CADBlockGRepHolder
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_TEMPORARY_ELEMENT; ///< 临时对象
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_MATERIAL_ELEMENT; ///< 材质对象
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_FAMILY_CONFIG_ELEMENT; ///< 族配置对象
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_STYLE_ELEMENT; ///< 样式对象
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_CATEGORY_ELEMENT; ///< 类别对象
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_SNAP_POINT; ///< 捕捉点
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_REFERENCE_PLANE; ///< 参照平面
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_REFERENCE_LINE; ///< 参照线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_REFERENCELINE_DATUMPLANE; ///< 参照线的基准平面
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_POINT_FAMILY; ///< 点式族
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_LINE_FAMILY; ///< 线式族
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_INSTANCE_JOIN; ///< 构件连接
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_INSTANCE_CUT; ///< 构件扣减
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_ELEMENT_OPENING; ///< 构件打洞
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_SNAP_HIGHLIGHT; ///< 捕捉高亮
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_MAGICAD_FAMILY; ///< 自MagiCAD导入来的族
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_DISTANCE_CONSTRAINT; ///< 距离约束
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_POINT_SET; ///< 点集
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_DOC_REFERENCE; ///< 引用文档类型
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_CURSOR_TIP; ///< 光标提示
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_SMART_ANTI_BACKGROUND_COLOR_CURSOR_TIP;///< 智能反背景色光标提示
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_REFERENCED_CURVE; ///< 被参考线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_VIEW_SYMBOL; ///< 视图符号
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_TEMP_DIMENSION_LINE; ///< 临时标注线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_TEMP_DIMENSION_HEAD; ///< 临时标注头
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_TEMP_DIMENSION_TEXT; ///< 临时标注文字
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_TEMP_DIMENSION_REFERENCE_LINE; ///< 临时标注参考线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_LENGTH_MEASURE_TOOL; ///< 长度测量工具标注线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_ANGLE_MEASURE_TOOL; ///< 角度测量工具标注线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_CONSTRAINT_SIGN; ///< 约束标识（临时样式）
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_STATIC_DIMENSION; ///< 静态尺寸
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_SECTION_VIEW_SYMBOL_BORDER; ///< 剖面范围框
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_DEFAULT_VIEW_PORT; ///< 默认视图范围框
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_TEMP_STYLE; ///< 临时对象样式
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_IMPORTED_CAD_OBJECT; ///< 导入对象
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_IMPORTED_SKP_OBJECT; ///< 导入SKP对象
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_FAMFORM_SUBSTRACTION; ///< 是否扣减体系统
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_FAMFORM_VISIABLEINPROJECT; ///< 项目可见
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_SLOPE_LINE; ///< 坡度线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_FAM_COORDINATE; ///< 族坐标系
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_PROFILE_EDIT_PLANE; ///< 三维草图编辑模式平面
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_SKETCH3D_REFERENCELINE; ///< 三维草图辅助线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_HATCH_PATTERN; ///< 填充类型
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_LINK_DOCUMENT_TYPE; ///< 链接文档类型
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_LINK_DOCUMENT_ELEMENT; ///< 链接文档对象
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_LINK_DATASET_TYPE; ///< 链接数据集类型
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_DRAWING_VIEWPORT; ///< 图纸视口
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_DRAWING_LAYOUT; ///< 图纸
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_FILLED_REGION_TYPE;  ///< 填充区域类型
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_FILLED_REGION;  ///< 填充区域
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_MASKING_REGION;  ///< 遮罩区域
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_LINE_TYPE; ///< 线型
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_GROUP_TYPE; ///< 组
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_GROUP; ///< 组
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_ONE_TO_ONE_ELEMENT_RELATIONSHIP; ///< 1对1对象关系
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_SHADOW_MODEL_VIEW; ///< 影子视图
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_LINEAR_ARRAY; ///< 线形阵列对象
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_RADIAL_ARRAY; ///< 环形阵列对象
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_GISTILE; ///< 倾斜摄影数据
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_DRAWING_TABLE_ELEMENT; ///< 表格
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_TEXT_BACKGROUND; ///< 文字背景
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_DRAWING_POLYCURVE; ///< 二维多段线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_GCCP_CONNECTOR; ///< 市政连接件
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_PLAN_REGION; ///< 平面区域
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_DRAWING_POINT; ///< 二维点
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_GCCP_CONNECTOR_LINK_SYMBOL; ///< 市政连接件的关联符号
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_REVCLOUD_TYPE; ///< 云线类型
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_REVCLOUD; ///< 云线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_3DCURVE; ///< 三维线
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_FAMILY_CONNECTOR; ///< 连接件
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_MODEL_TEXT; ///< 模型文字
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_DOOR_WINDOW_OPENING_LINE_FRONT; ///< 门窗开启线(前)
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_DOOR_WINDOW_OPENING_LINE_BACK; ///< 门窗开启线(后)
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_DOOR_WINDOW_OPENING_DIRECTION; ///< 门窗开启方向
        extern GCMP_MODEL_INTERFACE_EXPORT const UniIdentity BICU_DOOR_WINDOW_GLASS_SYMBOL; ///< 玻璃符号
    }
}
